﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace FrbaCommerce.Abm_Visibilidad
{
    public partial class ListadoVisibilidad : Form
    {
        Visibilidad visibilidad;
        bool modo;
        public ListadoVisibilidad(bool modo, Visibilidad visibilidad)
        {
            InitializeComponent();
            this.visibilidad = visibilidad;
            this.modo = modo;
            if (modo)
            {
                btnVisibilidad.Text = "Modificar";
            }
            else
            {
                btnVisibilidad.Text = "Baja";                
            }            
            
        }
        private void ListadoVisibilidad_Load(object sender, EventArgs e)
        {
            this.cmbCodigo.Text = String.Empty;
            //this.cmbCodigo.DataSource = String.Empty;
            this.visibilidad.cargarCombo(cmbCodigo);
            this.dgvVisibilidad.SelectionChanged += new EventHandler(dgvVisibilidad_SelectionChanged);
        }

        void dgvVisibilidad_SelectionChanged(object sender, EventArgs e)
        {
            if (!modo)
            {
                if (this.dgvVisibilidad.SelectedCells.Count > 0)
                {
                    Visibilidad visibilidad = (Visibilidad)this.dgvVisibilidad.SelectedCells[0].OwningRow.DataBoundItem;
                    if (visibilidad.habilitado)
                    {
                        this.btnVisibilidad.Text = "Eliminar";
                    }
                    else
                    {
                        this.btnVisibilidad.Text = "Activar";
                    }
                }               
            }
        }

        private void cmbCodigo_SelectionChanged(object sender, EventArgs e) 
        {
            CargarVisibilidades();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (btnVisibilidad.Text == "Modificar")
            {
                if (this.dgvVisibilidad.SelectedCells.Count > 0)
                {
                    Visibilidad v = (Visibilidad)this.dgvVisibilidad.SelectedCells[0].OwningRow.DataBoundItem;
                    AbmVisibilidad abmVisibilidad = new AbmVisibilidad(v);
                    abmVisibilidad.FormClosed += new FormClosedEventHandler(abmVisibilidad_FormClosed);
                    abmVisibilidad.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Seleccione una visibilidad para modificar.\n", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
            {
                if (this.dgvVisibilidad.SelectedCells.Count > 0)
                {
                    Visibilidad v = (Visibilidad)this.dgvVisibilidad.SelectedCells[0].OwningRow.DataBoundItem;
                    if (v.habilitado && MessageBox.Show("¿Está seguro de que desea " + this.btnVisibilidad.Text + " al cliente?\n", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                    {
                        return;
                    }
                    v.habilitado = !v.habilitado;
                    v.Actualizar(v);
                    CargarVisibilidades();
                }
                else
                {
                    MessageBox.Show("Seleccione una visibilidad para modificar.\n", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }     
            }
        }

        private void CargarVisibilidades()
        {
            Visibilidad v = new Visibilidad();
            this.dgvVisibilidad.DataSource = v.BuscarVisibilidades(cmbCodigo.Text);        
        }

        void abmVisibilidad_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.cmbCodigo.Text = String.Empty;           
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void lblLimpiarCampos_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.cmbCodigo.Text = String.Empty;
        }

        

       
    }
}
